XSS (Cross-Site Scripting) প্রতিরোধ

Microsoft Technologies - এএসপি ডট নেট এমভিসি (ASP.Net MVC) ASP.Net MVC অ্যাপ্লিকেশনের নিরাপত্তা (Security in ASP.Net MVC Applications) |
183
183

XSS (Cross-Site Scripting) হলো একটি সাধারণ নিরাপত্তা দুর্বলতা, যা ওয়েব অ্যাপ্লিকেশনে ব্যবহারকারী ইনপুট সঠিকভাবে যাচাই বা স্যানিটাইজ না করার কারণে ঘটে। XSS আক্রমণের মাধ্যমে একজন আক্রমণকারী ম্যালিশিয়াস স্ক্রিপ্ট ইনজেক্ট করে, যা ব্যবহারকারীর ব্রাউজারে কার্যকর হয়। এটি ব্যবহারকারীর ডেটা চুরি, সেশনের অপব্যবহার, বা অ্যাপ্লিকেশন হাইজ্যাক করতে পারে।

ASP.Net MVC-তে XSS আক্রমণ প্রতিরোধের জন্য বিভিন্ন পদ্ধতি এবং সুরক্ষা ব্যবস্থা প্রয়োগ করা হয়।


XSS আক্রমণের ধরণ

Stored XSS

অ্যাপ্লিকেশনে ম্যালিশিয়াস স্ক্রিপ্ট স্থায়ীভাবে সংরক্ষিত হয় (যেমন ডাটাবেসে), যা অন্য ব্যবহারকারীর কাছে প্রদর্শিত হয়।

Reflected XSS

ম্যালিশিয়াস স্ক্রিপ্ট সরাসরি HTTP অনুরোধের মাধ্যমে পাঠানো হয় এবং অবিলম্বে ব্রাউজারে কার্যকর হয়।

DOM-based XSS

জাভাস্ক্রিপ্ট দ্বারা ম্যালিশিয়াস কোড DOM (Document Object Model)-এ ইনজেক্ট করা হয় এবং ব্রাউজারে কার্যকর হয়।


XSS প্রতিরোধের পদ্ধতি

1. HTML Encoding ব্যবহার করা

ASP.Net MVC-তে Razor View Engine স্বয়ংক্রিয়ভাবে HTML Encoding করে। এটি ব্যবহারকারীর ইনপুট HTML এ সঠিকভাবে প্রদর্শন করে এবং XSS প্রতিরোধ করে।

<!-- Razor Encoding -->
<p>@Model.UserName</p>

এটি স্বয়ংক্রিয়ভাবে ইনপুট Model.UserName-কে HTML Encode করে।

2. AntiXSS Library ব্যবহার

AntiXSS Microsoft-এর একটি সুরক্ষা লাইব্রেরি, যা ইনপুট স্যানিটাইজ করতে এবং ম্যালিশিয়াস কোড প্রতিরোধ করতে ব্যবহৃত হয়।

using Microsoft.Security.Application;

string safeInput = Sanitizer.GetSafeHtml(userInput);

3. ValidateInput Attribute ব্যবহার

ASP.Net MVC-তে ValidateInput অ্যাট্রিবিউট ব্যবহার করে ইনপুট ভ্যালিডেশন নিশ্চিত করা যায়।

[ValidateInput(true)]
public ActionResult Submit(string userInput)
{
    // Process input
}

4. AllowHtml Attribute

যদি নির্দিষ্ট ফিল্ডে HTML ইনপুট প্রয়োজন হয়, তবে AllowHtml অ্যাট্রিবিউট ব্যবহার করুন।

public class CommentModel
{
    [AllowHtml]
    public string Comment { get; set; }
}

5. Anti-Forgery Token ব্যবহার

Anti-Forgery Token ব্যবহার করে ফর্ম সাবমিশন যাচাই করা যায়, যা XSS আক্রমণ প্রতিরোধে সাহায্য করে।

View:

@Html.AntiForgeryToken()
<form method="post">
    <input type="text" name="comment" />
    <button type="submit">Submit</button>
</form>

Controller:

[ValidateAntiForgeryToken]
public ActionResult SubmitComment(string comment)
{
    // Process comment
}

6. CSP (Content Security Policy) প্রয়োগ

CSP ব্রাউজারকে নির্দিষ্ট করে দেয় যে কোন উত্স থেকে স্ক্রিপ্ট বা কন্টেন্ট লোড করা যাবে। এটি DOM-based XSS আক্রমণ প্রতিরোধে সহায়ক।

Web.config বা Middleware-এ CSP যোগ করা:

Content-Security-Policy: script-src 'self' https://trusted-source.com;

7. ইনপুট ভ্যালিডেশন

ব্যবহারকারীর ইনপুট সঠিকভাবে যাচাই করুন। শুধুমাত্র অনুমোদিত ইনপুট গ্রহণ করুন এবং ডাটাবেসে সংরক্ষণের আগে ইনপুট স্যানিটাইজ করুন।

if (Regex.IsMatch(input, @"^[a-zA-Z0-9]*$"))
{
    // Process input
}

8. JavaScript Encoding

ইনপুট ডেটা যদি JavaScript-এ ব্যবহার করা হয়, তবে JavaScript Encoding ব্যবহার করুন।

<script>
    var userInput = @Html.Raw(Json.Encode(Model.UserInput));
</script>

সাধারণ সুরক্ষা পদ্ধতি

  • Default HTML Encoding: Razor View Engine HTML Encoding ব্যবহার নিশ্চিত করুন।
  • Strict Input Validation: ইনপুট যাচাই করে ডাটাবেসে সংরক্ষণ করুন।
  • Secure Frameworks: সর্বশেষ সংস্করণের ASP.Net এবং AntiXSS লাইব্রেরি ব্যবহার করুন।
  • Proper Error Handling: Exception Message ব্যবহারকারীর কাছে সরাসরি না দেখিয়ে একটি কাস্টম Error Page প্রদর্শন করুন।
  • Avoid Inline JavaScript: ইনলাইন JavaScript ব্যবহার এড়িয়ে চলুন এবং JavaScript ফাইল ব্যবহার করুন।

XSS প্রতিরোধের জন্য সেরা চর্চা (Best Practices)

  • ইনপুট এবং আউটপুট যথাযথভাবে স্যানিটাইজ করুন।
  • প্রতিটি ভিউ বা পৃষ্ঠার জন্য Anti-Forgery Token ব্যবহার করুন।
  • Content Security Policy (CSP) প্রয়োগ করুন।
  • ইনলাইন স্ক্রিপ্ট ব্যবহার এড়িয়ে চলুন।
  • ডাটাবেসে সংরক্ষণের আগে ব্যবহারকারীর ইনপুট যাচাই করুন।

সারমর্ম

ASP.Net MVC-তে XSS আক্রমণ প্রতিরোধে সঠিক ইনপুট ভ্যালিডেশন, HTML Encoding, এবং Anti-Forgery Token এর মতো পদ্ধতি ব্যবহার অত্যন্ত কার্যকর। XSS আক্রমণের ঝুঁকি হ্রাস করার জন্য সর্বদা সুরক্ষিত কোডিং প্র্যাকটিস অনুসরণ করা উচিত এবং সর্বশেষ নিরাপত্তা টুল এবং লাইব্রেরি ব্যবহার করা উচিত।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion